package Com.Hupochuan.Uil.Do;

import java.util.List;

import Com.Hupochuan.Dal.Tab.MovieActorTab;
import Com.Hupochuan.Dal.Tab.MovieSourceTab;
import Com.Hupochuan.Dal.Tab.MovieTab;
import Com.Hupochuan.Dal.Tab.MovieTypeTab;
import Com.Hupochuan.Dal.Tab.PageMovieTab;
import Com.Hupochuan.Uil.Servlet.DoRunServlet;
import Com.Hupochuan.Uil.Util.MemoryPond;
import Com.Hupochuan.Vo.Movie;
import Com.Hupochuan.Vo.MovieActor;
import Com.Hupochuan.Vo.MovieSource;
import Com.Hupochuan.Vo.MovieType;
import Com.Hupochuan.Vo.PageMovie;
import Com.Tester.Tester;

@SuppressWarnings("serial")
public class MovieDo extends DoRunServlet{
	public void doRun(){
		
		//打印测试
		Tester.print("打印测试 - MovieDo");
		
		//获得参数
		long movieId = this.getDoTool().getLongPathPara(1);
		
		//查找内存电影页面
		PageMovie pageMovie = MemoryPond.getObject().getPageMovie(movieId);
		
		//如果找到页 并且 不需要更新
		if(pageMovie != null && pageMovie.getIsUpdate() == 0){
			//转发静态页面
			this.getDoTool().forward(pageMovie.getUrl());
			return;
		}
		//获得电影对象 以及 子列表
		Movie movie = MovieTab.getObject().findMovie(movieId);
		
		//没有找到此电影
		if(movie == null){
			//发送错误
			this.getDoTool().sendError(404);
			return;
		}
		
		//获得电影演员列表
		List<MovieActor> movieActorList = MovieActorTab.getObject().findMovieActorList(movie.getId());
		
		//获得电影类型列表
		List<MovieType> movieTypeList = MovieTypeTab.getObject().findMovieTypeList(movie.getId());
		
		//获得电影资源列表
		List<MovieSource> movieSourceList = MovieSourceTab.getObject().findMovieSourceList(movieId);
		
		//设置电影对象的子参数
		movie.setMovieActorList(movieActorList);
		movie.setMovieTypeList(movieTypeList);
		movie.setMovieSourceList(movieSourceList);
		
		//设置数据
		this.getDoTool().setAttr("movie", movie);
		
		//转发页面
		this.getDoTool().doForward("/jsp/movie.jsp");
		
		//获得html内容
		String htmlContent = this.getDoTool().htmlEncode(this.getDoTool().getContent());
		
		//发送信息
		this.getDoTool().sendMsg(htmlContent);
		
		//没有保存此页面
		if(pageMovie == null){
			//添加电影页面
			PageMovieTab.getObject().appendData(movieId);
			
			//再次查找电影页面
			pageMovie = PageMovieTab.getObject().findPageMovie(movieId);
		}
		
		//需要更新此页面
		if(pageMovie.getIsUpdate() == 1){
			//移动临时文件到 标准目录中
			StringBuffer urlBuffer = new StringBuffer();
			urlBuffer.append("/html/movie/");
			/*
			if(movie.getReleaseDate() == null){
				urlBuffer.append("null");
			}
			else{
				urlBuffer.append(movie.getReleaseDate().toString().split("-")[0]);
			}
			urlBuffer.append("/");*/
			
			urlBuffer.append(String.format("%012d", pageMovie.getId()));//补齐12位ID
			urlBuffer.append(".html");
			
			
			//执行保存文件
			if(this.getDoTool().saveHtml(urlBuffer.toString(), htmlContent)){
				//修改电影页面
				PageMovieTab.getObject().updateData(urlBuffer.toString(),movieId);
				
				//新的静态页面路径改变了 那就删除以前的
				if(!urlBuffer.toString().equals(pageMovie.getUrl())){
					this.getDoTool().deleteFile(pageMovie.getUrl());
				}
			}
		}
	}
}
